package edu.amm.api;

/**
 * Границы отрезка.
 * 
 * @author Иванов Илья
 * @since 2013-05-12
 *
 */
public class Bounds {
	
	private double leftBound;
	private double rightBound;
	
	/**
	 * @param leftBound Левая граница.
	 * @param rightBound Правая граница.
	 */
	public Bounds(double leftBound, double rightBound) {
		if (leftBound >= rightBound)
			throw new RuntimeException("Границы отрезка заданы некорректно");
		
		this.leftBound = leftBound;
		this.rightBound = rightBound;
	}
	
	/**
	 * Создаёт границы отрезка путём копирования переданных.
	 * 
	 * @param bounds Границы для копирования.
	 */
	public Bounds(Bounds bounds) {
		if (bounds == null)
			throw new RuntimeException("Не заданы границы для копирования");
		
		leftBound = bounds.getLeftBound();
		rightBound = bounds.getRightBound();
	}
	
	/**
	 * @return Левая граница.
	 */
	public double getLeftBound() {
		return leftBound;
	}
	
	/**
	 * @return Правая граница.
	 */
	public double getRightBound() {
		return rightBound;
	}
	
	/**
	 * Отрезок, на котором заданы полиномы Лежандра.
	 */
	public static final Bounds LEGENDRE_BOUNDS = new Bounds(-1, 1);
}